import axios_ from 'axios'
import { accountStore } from '@/stores/account'

const axios = axios_.create({
  baseURL: 'http://localhost:7001',
  timeout: 4000
})
axios.interceptors.request.use(
  (config) => {
    //进行多个请求的统一操作
    // console.log('将要发送axios请求')
    // store中是否存在token 存在的话就添加进请求头
    const store = accountStore()
    if (store.token) {
      config.headers.Authorization = store.token
    }
    return config
  },
  (error) => {
    return Promise.reject(error)
  }
)
// 使用better实例每次拿到响应内容后都会执行的代码
axios.interceptors.response.use(
  // 正常处理函数
  (res) => {
    return res
  },
  // 异常处理函数
  (error) => {
    // 统一异常处理
    if (error && error.response) {
      //  800 目标找不到 701 字段校验  600 登录
      switch (error.response.status) {
        case 888:
          ElNotification.warning('统一异常处理888 ' + error.response.data)
          return new Promise(() => {})
        case 800:
          ElNotification.error('统一异常处理800 ' + error.response.data)
          //   console.log('统一异常处理800 ', error.response.data)
          return new Promise(() => {})
        //   800异常被捕获掉，后续相当于没有800返回
        // return Promise.reject(error)
        //   800异常被捕获掉，后续相当于又制造出一个800异常
        case 701:
          ElMessage.warning('统一异常处理701 ' + error.response.data)
          //   ElNotification.error('统一异常处理701 '+error.response.data)
          //   console.log('统一异常处理701 ', error.response.data)
          return new Promise(() => {})
        default:
          return Promise.reject(error)
      }
    }

    return Promise.reject(error)
  }
)
export { axios }
